hysop.operator.base.custom_symbolic_operator module

class hysop.operator.base.custom_symbolic_operator.CustomSymbolicOperatorBase(name, exprs, variables, splitting_direction=None, splitting_dim=None, dt_coeff=None, dt=None, time=None, **kwds)[source]

Bases: DirectionalOperatorBase

Common implementation interface for custom symbolic (code generated) operators.

Initialize a CustomSymbolicOperatorBase. Expressions are parsed and input/output vars are extracted.

Parameters:
  • exprs (array_like of valid hysop.symbolic.Expr) – Expressions that will generate code. Valid expressions are defined as hysop.operator.base.custom_symbolic_operator.ValidExpressions.

  • variables (dict) – dictionary of fields as keys aned topologies as values.

  • splitting_direction (int) – Expected direction of derivatives in given expression.

  • splitting_dim (int) – Only used in directional splittings.

  • dt_coeff (float) – Only used in directional splittings.

  • dt (ScalarParameter) – Only used for integration.

  • kwds – Base class keyword arguments.

Notes

All input and output fields and parameters are directly extracted from expression analysis.

classmethod available_methods()[source]
classmethod default_method()[source]
discretize(force_symbolic_axes=None)[source]

Discretize variables and symbolic expressions.

property expr_info

Get information about parsed symbolic expressions.

get_field_requirements()[source]

Extract field requirements from first expression parsing stage.

handle_method(method)[source]
setup(work)[source]

Setup required work.

class hysop.operator.base.custom_symbolic_operator.ExprDiscretizationInfo(**kwds)[source]

Bases: object

Helper class to store information about discretized symbolic expressions.

IndexedCounterTypes = (<class 'hysop.fields.discrete_field.DiscreteScalarFieldView'>,)
SimpleCounterTypes = (<class 'hysop.symbolic.array.SymbolicArray'>, <class 'hysop.symbolic.array.SymbolicBuffer'>)
property arrays
property buffers
copy()[source]
property fields
push_parameters(*param, **kwd_params)[source]
read(obj, index=None, count=1)[source]
read_objects(types)[source]
update(other)[source]
write(obj, index=None, count=1)[source]
written_objects(types)[source]
class hysop.operator.base.custom_symbolic_operator.SymbolicExpressionInfo(name, exprs, dt=None, dt_coeff=None, compute_resolution=None, **kwds)[source]

Bases: object

Helper class store information about parsed symbolic expressions.

check_array(array)[source]

Check if given symbolic array is compatible with previously parsed fields and arrays.

check_arrays()[source]
check_buffers()[source]
check_dfield_sizes()[source]
check_expressions(exprs)[source]
check_field(field)[source]

Check if given continuous field is compatible with previously parsed fields and arrays.

determine_direction(*variables)[source]
property dim

Shortcut to domain dimension.

discretize_expressions(input_dfields, output_dfields, force_symbolic_axes)[source]
extract_obj_requirements()[source]
property extracted_dexprs
property extracted_exprs
property fields

Return input and output fields.

property is_discretized

Return true if the SymbolicExpressionInfo was discretized.

property max_granularity
property params

Return input and output fields.

setup_expressions(work)[source]
class hysop.operator.base.custom_symbolic_operator.SymbolicExpressionParser[source]

Bases: object

Helper class to parse symbolic expressions.

classmethod check_expressions(exprs)[source]
classmethod discretize_assignment(info, expr)[source]
classmethod discretize_expressions(info)[source]
classmethod discretize_one(info, expr)[source]
classmethod discretize_subexpr(info, expr)[source]
classmethod extract_expressions(exprs)[source]
classmethod extract_obj_requirements(info)[source]
classmethod parse(name, variables, *exprs, **kwds)[source]
classmethod parse_assignment(variables, info, lhs, rhs)[source]
classmethod parse_one(variables, info, expr)[source]
classmethod parse_subexpr(variables, info, expr)[source]
classmethod read(variables, info, var, offset=None)[source]
classmethod read_discrete(info, expr, dfield, di)[source]
classmethod setup_expressions(info, work)[source]
classmethod setup_one(dexpr, work)[source]
classmethod should_transpose_expr(info, expr)[source]
classmethod transposable_expressions()[source]
classmethod transpose_expr(info, expr)[source]
classmethod write(variables, info, var)[source]
classmethod write_discrete(info, expr, dfield, di)[source]